package com.uinnova.product.eam.init.todo.dto;

import lombok.AccessLevel;
import lombok.Data;
import lombok.NonNull;
import lombok.Setter;

import java.util.List;

@Data
public class SendPendingJobInfo {

    /**
     * 消息所屬第三方待办原始id，该id可用于关闭、删除待办时的唯一标识
     */
    private String notifyId;

    /**
     * 待办主题
     */
    @NonNull
    private String subject;

    /**
     * 待办处理地址
     */
    @NonNull
    private String link;

    /**
     * 移动端待办处理地址，可与link同值，为空字符串时，通过移动端进入门户待办时，门户那边会禁止跳转待办地址
     */
    @NonNull
    private String mobileLink;

    /**
     * 消息接收人 (["yaow","lizi"])
     */
    @NonNull
    private List<String> targets;

    /**
     * 创建人
     */
    @NonNull
    private String creator;


    /**
     * 默认为1 （1：待办，2：待阅，4：系统通知）
     */
    private int todoType = 1;

    /**
     * 默认为3 （1：紧急，2：急，3：一般）
     */
    private int todoLevel = 3;


    @Setter(AccessLevel.NONE)
    private String notifyType = "todo";

    /**
     * 消息接收人组织架构属性名称
     */
    @Setter(AccessLevel.NONE)
    private String orgProperty = "fdLoginName";


    /**
     * 下面参数为统一设置
     */

    /**
     * 消息所属应用
     */
    @Setter(AccessLevel.NONE)
    private String appName;

    /**
     * 消息所属模块
     */
    @Setter(AccessLevel.NONE)
    private String moduleName;

    /**
     * 消息所属业务id
     */
    @Setter(AccessLevel.NONE)
    private String entityId;

    /**
     * 消息所属业务名称
     */
    @Setter(AccessLevel.NONE)
    private String entityName;

    /**
     * 消息所属业务特征关键字
     */
    @Setter(AccessLevel.NONE)
    private String entityKey;


    /**
     * 设置固定配置项
     */
    public void setConfig(String appName,String moduleName,String entityId,String entityName,String entityKey ){
        this.appName = appName;
        this.moduleName = moduleName;
        this.entityId = entityId;
        this.entityName = entityName;
        this.entityKey = entityKey;
    }

}
